package com.zhl.collection1;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;

public class CollectionAPI2 {
    public static void main(String[] args) {
        //学习Collection接口的常用方法
        //注：Collection接口是所有集合类的父接口，不可以直接实例化(new),只能通过它的实现类来实例化。
        Collection<String> collection = new ArrayList<>();  //多态写法
        //1。public boolean add(E e)：添加元素到集合中
        collection.add("apple");
        collection.add("banana");
        collection.add("orange");
        System.out.println(collection);         //这里它会用自己的toString()方法打印集合中的元素

        //2.public void clear()：清空集合中的所有元素
        collection.clear();
        System.out.println(collection);

        //3.public boolean isEmpty()：判断集合是否为空
        boolean isEmpty = collection.isEmpty();
        System.out.println(isEmpty);

        //4.public int siz()：返回集合中元素的个数 获取集合大小
        collection.add("apple");
        collection.add("banana");
        collection.add("orange");
        collection.add("pear");
        int size = collection.size();
        System.out.println(size);

        //5.public boolean contains(Object o)：判断集合中是否包含指定元素
        boolean contains = collection.contains("apple");
        System.out.println(contains);

        //6.public boolean remove(Object o)：从集合中移除指定元素
        boolean remove = collection.remove("banana");    //如果有多个相同元素,则默认移除第一个！
        System.out.println(remove);
        System.out.println(collection.remove("banana"));  //等同于上述代码
        System.out.println(collection);

        //7.public Object[] toArray()：将集合中的元素转换为数组  以后使用别的方法，可能只接收数组,所以使用这个方法就可以转换数组
        Object[] arr = collection.toArray();
        System.out.println(Arrays.toString(arr));   //打印数组  因为Arrays没有重写toString方法，所以用Arrays.toString()方法打印

        //如果想把转成字符串类型的数组   但是要确保数据都是该类型。
        String[] strArr = collection.toArray(new String[collection.size()]);
        System.out.println(Arrays.toString(strArr));

        System.out.println("=================================================");
        //把一个集合中的数据全部倒入另一个集合中     使用addAll()方法
        Collection<String> c1 = new ArrayList<>();
        c1.add("apple");
        c1.add("banana");
        c1.add("orange");
        c1.add("pear");
        Collection<String> c2 = new ArrayList<>();
        c2.add("strawberry");
        c2.add("grape");
        c2.addAll(c1);    //把c1中的元素全部倒入c2中  加上原本的c2集合 一共有6个元素
        System.out.println(c2);


    }
}
